package listNodePractice;

public class ListNodePalindrome {

    // 左侧指针
    ListNode left;
    boolean isPalindrome(ListNode head) {
        left = head;
        return traverse(head);
    }


    boolean traverse(ListNode right) {
        if (right == null) return true;
        boolean res = traverse(right.next);
        // 后序遍历代码
        res = res && (right.val == left.val);
        left = left.next;
        return res;
    }


//  CKG TODO 2023/4/15: 链表倒序遍历
//    void traverse(ListNode head) {
//        if (head == null) return;
//        traverse(head.next);
//        // 后序遍历代码
//        System.out.println(head.val);
//    }


    public static void main(String[] args) {
        ListNode listNode1 = new ListNode(1);
        ListNode listNode2 = new ListNode(2);
        ListNode listNode3 = new ListNode(3);
        ListNode listNode4 = new ListNode(4);
        ListNode listNode5 = new ListNode(2);
        listNode1.next=listNode2;
        listNode2.next=listNode3;
        listNode3.next=listNode4;
        listNode4.next=listNode5;

        ListNodePalindrome listNodePalindrome = new ListNodePalindrome();


    }


}
